home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / fdimg / —‹Œêsrc.lzh / main.c < prev    next >
C/C++ Source or Header  |  1993-03-19  |  4KB  |  193 lines

  1. #include    "3DDEF.H"
  2. #include    "GLOBAL.H"
  3. #include    "FORWARD.H"
  4. #include    "XCODE.H"
  5. #include    "doslib.h"
  6.  
  7. UBYTE argv0[MAXLINE];
  8. UBYTE options[MAX_OPTION][MAXLINE];
  9.  
  10. extern UWORD view_flag;
  11. extern WORD VERSION;
  12.  
  13. void
  14. main(int argc,STR argv[])
  15. {
  16.     UNIT *wp;
  17.     int flag;
  18.     int i,fc,oc;
  19.  
  20.     if (argc > 10000) {
  21.         printf("隠しコマンドなんて無いよぉ");
  22.     }
  23.     B_PRINT("ThunderWord V1.2 (C) 1992,1993 満開製作所");
  24.  
  25.  
  26.     etc_begin();
  27.     fep_init_first();
  28.  
  29.     DUM_FLAG = 0;
  30.  
  31.     strcpy(argv0,argv[0]);    /* 自分を保存する */
  32.  
  33.     init_first();        /* 初期化、カレントは0番になる */
  34.     for(oc=0,i=1;i<argc;i++) {    /* 0番以外のすべてのパラメータについて */
  35.         if ((*argv[i] == '-') || (*argv[i] == '/')) {    /* オプションである */
  36.             if (oc < MAX_OPTION) {
  37.                 strcpy(options[oc++],argv[i]);
  38.             }
  39.         }
  40.     }
  41.     *options[oc] = EOS;
  42.     init_parameters();    /* パラメータをデフォルトにする */
  43.     if (!DUM_FLAG && KNJCTRL(50) < 200) {
  44.         DUM_FLAG = 1;
  45.         etc_beep();
  46.         B_PRINT("\n\rASK68K.SYS のバージョンが 2.00 以前なので、ダミーモードにします[Y]?");
  47.         etc_wait_y();
  48.     }
  49. /*    fep_init();    */        /* fep を初期化 */
  50.      fep_key_clear();
  51.     for(fc=0,i=1;i<argc;i++) {    /* 0番以外のすべてのパラメータについて */
  52.         if ((*argv[i] == '-') || (*argv[i] == '/')) {    /* オプションである */
  53.             continue;
  54.         }
  55.         if (fc < MAX_FILE) {    /* ファイル名である */
  56.             ctrl_x_ctrl_f1(argv[i]);
  57.             fc++;
  58.         } else {
  59.             under_print0((STR)"ファイルの数が最大を越えました。 [Y]? ");
  60.             etc_beep();
  61.             etc_y_exit();
  62.         }
  63.     }
  64.     if (fc >=2 ) {    /* 複数の指定があったら、最後に指定されたファイルになってるので */
  65.         ctrl_x_x();    /* 最初のファイルにする */
  66.     }
  67.     under_blanc();
  68.  
  69.     if (!fc) {    /* ファイル指定が無かった */
  70.         flag = file_open(fc,(STR)"dummy");
  71.         file_set_text(fc,fc);
  72.         if (flag >= 0) {    /* 正常 */
  73.             buff_read_file_x(fc);
  74.             /* fc なるバッファにファイルを読み込む */
  75.         } else {        /* エラー */
  76.             error("ファイルオープンエラーです");
  77.         }    
  78.         file_close(fc);
  79.     }
  80.  
  81.     if (KNJCTRL(50) >= 300 ) {
  82.         etc_begin2();
  83.     }
  84.     fep_init();
  85.     work();        /* カレントに対して作業する */
  86.     init_exit();
  87. }
  88.  
  89. #if 1
  90.  
  91. /* エラーメッセージの表示 */
  92. void
  93. error(char *error_message)
  94. {
  95.     UBYTE w[MAXLINE];
  96.     UBYTE c;
  97.  
  98.     sprintf(w,"エラーが発生しました:%s [Push 'Y' Key]",error_message);
  99.     under_print0(w);
  100.     while(1) {
  101.         etc_beep();
  102.         c = toupper(fep_inkey_raw());
  103.         if (c == 'Y') {
  104.             return;
  105.         }
  106.         if (c == 'C'-'@') {
  107.             init_exit();
  108.             etc_exit(1);
  109.         }
  110.     }
  111. }
  112.  
  113. #else
  114.  
  115. /* エラーメッセージの表示 */
  116. void
  117. error(char *error_message)
  118. {
  119. }
  120.  
  121. #endif
  122.  
  123.  
  124. #if 0
  125. void
  126. check(STR s,int i)
  127. {
  128.     printf("%s::%d\n",s,i);
  129.     getchar();
  130. }
  131.  
  132. void
  133. main_dump_files()
  134. {
  135.     int i;
  136.  
  137.     etc_beep();
  138.     window0();
  139.     for(i=0;i<16;i++) {
  140.         printf("%d:[%s][%s]\n",i,
  141.         FILE_NAMES[i].CONTENT,
  142.         FILE_NAMES_ST[i].CONTENT);
  143.     }
  144. }
  145. #endif
  146.  
  147. #if 1
  148. void
  149. etc_trim_tail()
  150. {
  151.     UBYTE l[VERY_LONG_LINE*8];
  152.     register UNIT *wp;
  153.  
  154.     if (TAIL->MAE == HEAD) {
  155.         return;
  156.     }
  157.     while(!line_length(wp = TAIL->MAE)) {
  158.         if (wp != HEAD) {
  159.             if (wp->MAE == HEAD) {
  160.                 return;
  161.             }
  162.             line_get_body(l,wp->MAE);
  163.             if (etc_jlast(l) != CR) {
  164.                 if (CL == wp) {
  165.                     UBYTE s[VERY_LONG_LINE*8];
  166.                     strcat(l,"あ");
  167.                     if (cut_line(l,s,l,CURRENT_JIZUME) == 2) {
  168.                         /* 前の行は1行を成立させている */
  169.                         break;
  170.                     } else {
  171.                         ctrl_b();
  172.                     }
  173. /*                    CL = CL->MAE;*/
  174.                 }
  175.                 line_delete1_echo_after_bag(TAIL->MAE);
  176.             } else {
  177.                 break;
  178.             }
  179.         } else {
  180.             break;
  181.         }
  182.     }
  183. }
  184. #endif
  185.  
  186. void
  187. main_set_view_flag()
  188. {
  189.     view_flag = strchr(FILE_NAMES_ST[WDATA[CWN].WTEXTS].CONTENT,'[');
  190.  
  191. }
  192.  
  193.